package com.iwomy.secureplat.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iwomy.secureplat.admin.api.vo.SysDeptVO;
import com.iwomy.secureplat.common.core.util.R;
import com.iwomy.secureplat.platform.dto.BasicExpensesDeviceDTO;
import com.iwomy.secureplat.platform.entity.BasicExpensesDeptDetailEntity;
import com.iwomy.secureplat.platform.vo.BasicExpensesDeptDetailVO;
import com.iwomy.secureplat.platform.vo.QuerySmsTtsCountVO;

import java.util.List;

public interface BasicExpensesDeptDetailService extends IService<BasicExpensesDeptDetailEntity> {

	List<SysDeptVO> getBasicExpensesDeptDetailPage(Page page, BasicExpensesDeviceDTO expensesDeviceDTO);

	List<BasicExpensesDeptDetailVO> byDeptId(Long deptId);

	R newlyAdded(BasicExpensesDeptDetailEntity basicExpensesDeptDetail);

	R paying(BasicExpensesDeptDetailEntity basicExpensesDeptDetail);

	QuerySmsTtsCountVO querySmsTtsCount();

	QuerySmsTtsCountVO queryDeptCount(Long deptId);

	BasicExpensesDeptDetailEntity payingDetails(Long deptId);

	List<Integer> getPlatformFeeYears(Long customerDeptId);

	List<BasicExpensesDeptDetailEntity> byDeptIdList(Long deptId);

	boolean deductDevice(int deviceAddNum,Long deptId);

	boolean deptDeductSms(int smsAddNum, Long deptId);

	boolean deptDeductTts(int ttsAddNum, Long deptId);

	Integer deviceRemainNum();

}